/*
	闭包特征：
	所谓闭包就是一个函数“捕获”了和它在同一作用域的其它常量和变量。这就意味着当闭包被调用的时候，不管在程序什么地方调用，闭包能够使用这些常量或者变量。它不关心这些捕获了的变量和常量是否已经超出了作用域，所以只有闭包还在使用它，这些变量就还会存在。

	此为失败的闭包，因为 funcTest 中的 func 未被主函数直接调用
*/

package main

import (
	"fmt"
)

func funcTest() func() {
	var i int
	fmt.Println("funTest i= ", i)
	return func() {
		i += 10
		fmt.Println("i:", i)
	}
}

func main() {

	funcTest()
	funcTest()

}
